オーダー order notation
アルゴリズムの時間計算量の評価を簡単化する記法(Bachmann-Landau 記法)
𝑂 記法 … 計算量の上界
Ω 記法 … 計算量の下界
Θ 記法 … 計算量の上界と下界
※その他に 𝑜 記法や𝜔 記法がある.
問題の入力サイズが十分に大きいときの(極限における),
入力サイズの増加に対する時間計算量の増加の程度を別の関数を目安にして記述
処理がどれくらい時間がかかるのかを表したもの
𝑂 記法(Big-O notation)が一般的
関数の漸近的上界を表すオーダー記法
例:
O(1)
多項式オーダー(polynomial order)
table:order
表記 意味 例 問題
O(1) 定数時間 処理時間がデータ量に依存しない
O(log n) 対数時間 処理を行うたびに処理対象を何割か減らせる
O(n) 線形時間 データ量の分だけ時間がかかる
O(n log n) 準線形時間 線形対数時間 𝑂 𝑛 より少し長く処理時間がかかる
O(n**2) 二乗時間 2重ループを伴う配列全体の走査を行う
O(n**3) 多項式時間 3重ループを伴う配列全体の走査を行う
O(k**n) 指数時間 𝑛 個の要素の取り出し方の全組合せを調べる 集合分割問題など
O(n!) 階乗時間 𝑛 の階乗に比例した時間がかかる 巡回セールスマン問題の総当たりによる解法など
参考
計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita